/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package startupsolutions.mobilize;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.List;
import javax.jdo.PersistenceManager;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 *
 * @author ultimoistante
 */
public class AppListServlet extends HttpServlet
	{
	/**
	 * Processes requests for both HTTP
	 * <code>GET</code> and
	 * <code>POST</code> methods.
	 *
	 * @param request servlet request
	 * @param response servlet response
	 * @throws ServletException if a servlet-specific error occurs
	 * @throws IOException if an I/O error occurs
	 */
	protected void processRequest(HttpServletRequest request, HttpServletResponse response)
		throws ServletException, IOException
		{
		//System.out.println("[***] AppListServlet.processRequest >>>");
		
		/*response.setContentType("text/html;charset=UTF-8");
		PrintWriter out = response.getWriter();
		try
			{
			PersistenceManager pm = PMF.get().getPersistenceManager();
			String query = "select from " + MobileApp.class.getName();
			List<MobileApp> apps = (List<MobileApp>) pm.newQuery(query).execute();
			if (!apps.isEmpty())
				{
				String output = "";
				for (MobileApp app : apps)
					{
					output += "<li><a href='app_edit.jsp?appId=" +app.getId().toString() + "' data-transition='slide'>" + app.getTitle() + "</a></li>";
					}
				out.println(output);
				//System.out.println(output);
				}
			else
				System.out.println("[***] empty datastore!!!");*/
		
		
		
		}

	// <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
	/**
	 * Handles the HTTP
	 * <code>GET</code> method.
	 *
	 * @param request servlet request
	 * @param response servlet response
	 * @throws ServletException if a servlet-specific error occurs
	 * @throws IOException if an I/O error occurs
	 */
	@Override
	protected void doGet(HttpServletRequest request, HttpServletResponse response)
		throws ServletException, IOException
		{
		response.setContentType("text/html;charset=UTF-8");
		response.setHeader("Access-Control-Allow-Origin", "*");
		//response.setHeader("Origin", "*");
		//response.setContentType("text/json");
		PrintWriter out = response.getWriter();
		//
		try
			{
			PersistenceManager pm = PMF.get().getPersistenceManager();
			String query = "select from " + MobileApp.class.getName();
			List<MobileApp> apps = (List<MobileApp>) pm.newQuery(query).execute();
			String output = "{\"applist\": [";
			if (!apps.isEmpty())
				{
				for (MobileApp app : apps)
					{
					output += "{\"app_name\": \"" + app.getTitle() + "\", \"app_id\": \"" + app.getId().toString() + "\"},";
					}
				output = output.substring(0, output.length()-1);
				}
			else
				System.out.println("[***] empty datastore!!!");
			output += "]}";
			System.out.println(output);
			out.println(output);
			}
		finally
			{			
			out.close();
			}
		}

	/**
	 * Handles the HTTP
	 * <code>POST</code> method.
	 *
	 * @param request servlet request
	 * @param response servlet response
	 * @throws ServletException if a servlet-specific error occurs
	 * @throws IOException if an I/O error occurs
	 */
	@Override
	protected void doPost(HttpServletRequest request, HttpServletResponse response)
		throws ServletException, IOException
		{
		processRequest(request, response);
		}

	/**
	 * Returns a short description of the servlet.
	 *
	 * @return a String containing servlet description
	 */
	@Override
	public String getServletInfo()
		{
		return "Short description";
		}// </editor-fold>
	}
